﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using IPark.Framework;
using IPark.Metadata;

namespace iPark.Contract
{
    public class ParkingData : BaseNotify, IParkingData
    {
        /// <summary>
        /// 主键Guid
        /// </summary>
        private string _guid = null;

        public string Guid
        {
            get { return this._guid; }
            set
            {
                if (this._guid != value)
                {
                    this._guid = value;

                    this.NotifyPropertyChanged("Guid");
                }
            }
        }

        /// <summary>
        /// 行政区划名称
        /// </summary>
        private string _admin = null;

        public string Admin
        {
            get { return this._admin; }
            set
            {
                if (this._admin != value)
                {
                    this._admin = value;

                    this.NotifyPropertyChanged("Admin");
                }
            }
        }

        /// <summary>
        /// 子行政区划1
        /// </summary>
        private string _childAdmin1 = null;

        public string ChildAdmin1
        {
            get { return this._childAdmin1; }
            set
            {
                if (this._childAdmin1 != value)
                {
                    this._childAdmin1 = value;

                    this.NotifyPropertyChanged("ChildAdmin1");
                }
            }
        }

        /// <summary>
        /// 子行政区划2
        /// </summary>
        private string _childAdmin2 = null;

        public string ChildAdmin2
        {
            get { return this._childAdmin2; }
            set
            {
                if (this._childAdmin2 != value)
                {
                    this._childAdmin2 = value;

                    this.NotifyPropertyChanged("ChildAdmin2");
                }
            }
        }

        /// <summary>
        /// 全称
        /// </summary>
        private string _fullName = null;

        public string FullName
        {
            get { return this._fullName; }
            set
            {
                if (this._fullName != value)
                {
                    this._fullName = value;

                    this.NotifyPropertyChanged("FullName");
                }
            }
        }

        /// <summary>
        /// 简称1 - 通常为拼音
        /// </summary>
        private string _shortName1 = null;

        public string ShortName1
        {
            get { return this._shortName1; }
            set
            {
                if (this._shortName1 != value)
                {
                    this._shortName1 = value;

                    this.NotifyPropertyChanged("ShortName1");
                }
            }
        }

        /// <summary>
        /// 简称2 - Keyword
        /// </summary>
        private string _shortName2 = null;

        public string ShortName2
        {
            get { return this._shortName2; }
            set
            {
                if (this._shortName2 != value)
                {
                    this._shortName2 = value;

                    this.NotifyPropertyChanged("ShortName2");
                }
            }
        }

        /// <summary>
        /// 简称3
        /// </summary>
        private string _shortName3 = null;

        public string ShortName3
        {
            get { return this._shortName3; }
            set
            {
                if (this._shortName3 != value)
                {
                    this._shortName3 = value;

                    this.NotifyPropertyChanged("ShortName3");
                }
            }
        }

        /// <summary>
        /// 管理人或公司
        /// </summary>
        private string _owner = null;

        public string Owner
        {
            get { return this._owner; }
            set
            {
                if (this._owner != value)
                {
                    this._owner = value;

                    this.NotifyPropertyChanged("Owner");
                }
            }
        }

        /// <summary>
        /// 总车位数
        /// </summary>
        private int _capacity = 0;

        public int Capacity
        {
            get { return this._capacity; }
            set
            {
                if (this._capacity != value)
                {
                    this._capacity = value;

                    this.NotifyPropertyChanged("Capacity");
                }
            }
        }

        /// <summary>
        /// 机械车位数
        /// </summary>
        private int _parkingMech = 0;

        public int ParkingMech
        {
            get { return this._parkingMech; }
            set
            {
                if (this._parkingMech != value)
                {
                    this._parkingMech = value;

                    this.NotifyPropertyChanged("ParkingMech");
                }
            }
        }

        /// <summary>
        /// 非机械车位数
        /// </summary>
        private int _parkingNonMech = 0;

        public int ParkingNonMech
        {
            get { return this._parkingNonMech; }
            set
            {
                if (this._parkingNonMech != value)
                {
                    this._parkingNonMech = value;

                    this.NotifyPropertyChanged("ParkingNonMech");
                }
            }
        }

        /// <summary>
        /// 价格信息
        /// </summary>
        private string _priceInfo = null;

        public string PriceInfo
        {
            get { return this._priceInfo; }
            set
            {
                if (this._priceInfo != value)
                {
                    this._priceInfo = value;

                    this.NotifyPropertyChanged("PriceInfo");
                }
            }
        }

        /// <summary>
        /// 时间段信息
        /// </summary>
        private string _timeInfo = null;

        public string TimeInfo
        {
            get { return this._timeInfo; }
            set
            {
                if (this._timeInfo != value)
                {
                    this._timeInfo = value;

                    this.NotifyPropertyChanged("TimeInfo");
                }
            }
        }

        /// <summary>
        /// 谷歌查询的经度
        /// </summary>
        private double _longitudeGoogle = double.MinValue;

        public double LongitudeGoogle
        {
            get { return this._longitudeGoogle; }
            set
            {
                if (this._longitudeGoogle != value)
                {
                    this._longitudeGoogle = value;

                    this.NotifyPropertyChanged("LongitudeGoogle");
                }
            }
        }

        /// <summary>
        /// 谷歌查询的纬度
        /// </summary>
        private double _latitudeGoogle = double.MinValue;

        public double LatitudeGoogle
        {
            get { return this._latitudeGoogle; }
            set
            {
                if (this._latitudeGoogle != value)
                {
                    this._latitudeGoogle = value;

                    this.NotifyPropertyChanged("LatitudeGoogle");
                }
            }
        }

        /// <summary>
        /// 百度查询的经度
        /// </summary>
        private double _longitudeBaidu = double.MinValue;

        public double LongitudeBaidu
        {
            get { return this._longitudeBaidu; }
            set
            {
                if (this._longitudeBaidu != value)
                {
                    this._longitudeBaidu = value;

                    this.NotifyPropertyChanged("LongitudeBaidu");
                }
            }
        }

        /// <summary>
        /// 百度查询的纬度
        /// </summary>
        private double _latitudeBaidu = double.MinValue;

        public double LatitudeBaidu
        {
            get { return this._latitudeBaidu; }
            set
            {
                if (this._latitudeBaidu != value)
                {
                    this._latitudeBaidu = value;

                    this.NotifyPropertyChanged("LatitudeBaidu");
                }
            }
        }

        /// <summary>
        /// 停车场类型
        /// </summary>
        private ParkingType _type = ParkingType.Unknown;

        public ParkingType Type
        {
            get { return this._type; }
            set
            {
                if (this._type != value)
                {
                    this._type = value;

                    this.NotifyPropertyChanged("Type");
                }
            }
        }
    }
}
